RAM is an essential component of digital computers, often responsible for storing both software instructions and the data on which those instructions act. If a malfunction in RAM goes undetected, the computer risks generating corrupted data or ceasing operation altogether. Therefore, ensuring the proper functioning of RAM is a vital prerequisite to performing work with a computer.
A common way to test RAM is to write a known bit pattern to addresses in the RAM, then read bit patterns from the same addresses and compare the bit pattern written with the bit pattern read. Any discrepancy indicates a malfunction. A more thorough way to test RAM is to repeat the above using different bit patterns. The bit patterns are best chosen to force, over the course of the test, every bit of each addressable location to both possible logical states: zero and one.
Built-in self test (BIST) has become a favored mechanism for carrying out RAM tests. BIST calls for RAM test circuitry to be integrated into the same chip or module with the RAM such that the two are treated architecturally as a single unit and further that RAM testing begins automatically when the RAM is initialized. BIST frees computer system designers from having to concern themselves with designing their own external RAM test circuitry for the RAM they want to include.
Over the years, RAM has become quite inexpensive compared with other computer components. Accordingly, the amount of RAM used in computer systems has skyrocketed. Large RAM spaces can greatly enhance computer performance and capability, but they suffer a distinct disadvantage in one important respect. Since thorough RAM testing involves testing each address, the time required to test is a function of the number of addresses contained in the RAM. Thus, large RAM spaces take a long time to test. As RAM requirements continue to grow, the problem will only become worse in the future.
What is needed in the art is a more efficient way to test large RAM spaces thoroughly. What is further needed in the art is a way to achieve BIST with respect to a large RAM space.